<!DOCTYPE HTML>
<html>

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="maximum-scale=1.0, minimum-scale=1.0, user-scalable=0, initial-scale=1.0, width=device-width" />
    <meta name="format-detection" content="telephone=no, email=no, date=no, address=no">
    <title>Hello UPdate Demo</title>
    <link rel="stylesheet" type="text/css" href="../css/api.css" />
    <link rel="stylesheet" type="text/css" href="../css/box.css" />
    <style>
        label {
            margin: 10px;
            font-size: 24px;
        }

        ul {
            margin-bottom: 10px;
        }

        ul li {
            margin: 5px 10px;
            padding: 5px;
            color: #000;
            word-wrap: break-word;
        }

        input {
            font-size: 12px;
            width: 90%;
        }

        #appversiontitle {
            text-align: center;
        }

        #widgetversiontitle {
            text-align: center;
        }
    </style>
</head>

<body>
    <div id="wrap">
        <div id="main">
        	<br>
            <div id="appversiontitle"></div>
            <div id="widgetversiontitle"></div>
			<div class='itemtitle'>1、App更新</div>
                <div class="clickbtn" tapmode="active" onclick="appUpdate()">版本更新</div>
                <lable id="ios_url_label" style="display: block">iOS-App更新地址</lable>
                <input type="text" id="iOS_url" value="" placeholder="扫描二维码或输入iOS更新地址"/>
                <div id="ios_url_scan_btn" class="clickbtn" tapmode="active" onclick="scanGetiOSUrl()">扫描获取iOS更新地址</div>
                <lable id="android_url_label" style="display: block">android-App更新地址</lable>
                <input type="text" id="android_url" value="" placeholder="扫描二维码或输入android更新地址"/>
                <div id="android_url_scan_btn" class="clickbtn" tapmode="active" onclick="scanGetAndroidUrl()" >扫描获取android更新地址</div>
                <div class="clickbtn" tapmode="active" onclick="mockAppUpdate()">模拟App大版本更新</div>
                <lable>widget更新地址</lable>
                <input type="text" id="widget_url" value="" placeholder="扫描二维码或输入widget更新地址"/>
                <div id="widget_url_scan_btn" class="clickbtn" tapmode="active" onclick="scanGetWidgetUrl()" >扫描获取widget更新地址</div>
				<div class="clickbtn" tapmode="active" onclick="cloudFix()">云修复</div>
                <!-- <div class="clickbtn" tapmode="active" onclick="downloadDemo()">下载</div>
                <div class="clickbtn" tapmode="active" onclick="unzipDemo()">解压widget</div> -->
            <!-- <div class='itemtitle'>2、uiActionProgress</div>
                <div class="clickbtn" tapmode="active" onclick="openProgressDemo()">打开进度条</div> -->
            <!-- <div class='itemtitle'>3、fs模块</div>
                <div class="clickbtn" tapmode="active" onclick="checkWidgetZipExistDemo()">检测widget压缩包是否存在</div>
                <div class="clickbtn" tapmode="active" onclick="deleteWidgetZipExistDemo()">删除widget压缩包</div> -->
            <!-- <div class='itemtitle'>4、文件数据存储测试</div> -->
                <!-- <div class="clickbtn" tapmode="active" onclick="wgtRootDirTest()">写文件到wgtRootDir</div> -->
                <!-- <div class="clickbtn" tapmode="active" onclick="fsDirTest()">写文件到fsDir</div> -->
                <!-- <div class="clickbtn" tapmode="active" onclick="cacheDirTest()">写文件到cacheDir</div> -->
                <!-- <div class="clickbtn" tapmode="active" onclick="boxDirTest()">写文件到boxDir</div> -->
                <!-- <div class="clickbtn" tapmode="active" onclick="fsTest()">写文件到fs</div> -->
                <!-- <div class="clickbtn" tapmode="active" onclick="cacheTest()">写文件到cache</div> -->
                <!-- <div class="clickbtn" tapmode="active" onclick="widgetTest()">写文件到widget</div> -->
            <!-- <div class='itemtitle'>5、Preference测试</div> -->
                <!-- <div class="clickbtn" tapmode="active" onclick="writeToPreference()">写文件到Preference</div> -->
            <!-- <div class='itemtitle'>6、apiExtension测试</div> -->
                <!-- <div class="clickbtn" tapmode="active" onclick="jSetPrefs()">设置自定义Prefs</div> -->
                <!-- <div class="clickbtn" tapmode="active" onclick="jGetPrefs()">获取Key为version_name的自定义Prefs</div> -->
                <!-- <div class="clickbtn" tapmode="active" onclick="jRemovePrefs()">移除Key为version_name的自定义Prefs</div> -->
                <!-- <div class="clickbtn" tapmode="active" onclick="jClearPrefs()">清空自定义Prefs</div> -->
                <!-- <div class="clickbtn" tapmode="active" onclick="jDeletePrefs()">删除自定义Prefs</div> -->
                <!-- <div class="clickbtn" tapmode="active" onclick="readWidgetVersion()">读取小版本号</div> -->
            <!-- <div class='itemtitle'>7、promise测试</div>
            <div class="clickbtn" tapmode="active" onclick="promiseTest()">Promise测试</div> -->
			<br>
            <div id='sys-info'></div>
		</div>
	</div>
    <!-- <a class="button" tapmode="active" onclick="showAlert()">普通方法测试</a>
    <a class="button" tapmode="active" onclick="closeFrame()">关闭关闭关闭关闭关闭关闭关闭</a>
    <a class="button" tapmode="active" onclick="openFrames()">打开Frames</a>
    <a class="button" tapmode="active" onclick="closeFrames()">关闭Frames</a>
    <a class="button" tapmode="active" onclick="shiftFrame()">切换Frame</a> -->
</body>
<script type="text/javascript" src="../script/api.js"></script>
<script type="text/javascript" src="../script/appUpdateMan.js"></script>
<script type="text/javascript">
    var appVersion = ''
    var widgetVersion = ''
    var currentIndex = 0
    var FNScanner
    apiready = function() {
        downloadUrlNo = '';
        appVersion = api.appVersion;
        widgetVersion = api.getPrefs({
            sync: true,
            key: 'widgetVersion'
        });
        // widgetVersion = '0.0.1'

        $api.byId('appversiontitle').innerHTML = `App版本号: ${appVersion}`;
        $api.byId('widgetversiontitle').innerHTML = `Widget版本号: ${widgetVersion}`;

        FNScanner = api.require('FNScanner');
        api.addEventListener({
            name:'resume'
        }, function(ret, err){    
            FNScanner.onResume();
            // alert('应用回到前台');
        });

        api.addEventListener({
            name:'pause'
        }, function(ret, err){    
            FNScanner.onPause();
            // alert('应用进入后台');
        });

        if (api.systemType === "ios") {
            $api.css($api.byId("android_url"), `display: none`);
            $api.css($api.byId("android_url_label"), `display: none`);
            $api.css($api.byId("android_url_scan_btn"), `display: none`);
            // .attr("style", "display:none;");
        } else if (api.systemType === "android") {
            $api.css($api.byId("iOS_url"), `display: none`);
            $api.css($api.byId("ios_url_label"), `display: none`);
            $api.css($api.byId("ios_url_scan_btn"), `display: none`);
            
            // $api.byId("android").attr("style", "display:none;");
        }

        // openFrames();
        // return;

        //异步返回结果：
        // api.loadSecureValue({
        //     key: 'key'
        // }, function(ret, err) {
        //     var appKey = ret.value;
        // });

        // var arcProgress = api.require('arcProgress');
        // arcProgress.open({
        //     type: 1,
        //     centerX: api.frameWidth / 6 * (2 * 1 + 1),
        //     centerY: api.frameHeight / 4,
        //     radius: api.frameWidth / 6,
        //     bgColor: '#87c0ed',
        //     pgColor: '#325570',
        //     fixedOn: api.frameName
        // }, function(ret, err) {
        //     setValue({
        //         id: ret.id,
        //         value: 0
        //     })
        // });

        // function setValue(obj) {
        //     if (obj.value == 100) {
        //         obj.value = 0;
        //     }
        //     setTimeout(function() {
        //         arcProgress.setValue({
        //             id: obj.id,
        //             value: ++obj.value
        //         });
        //         setValue(obj)
        //     }, 100);
        // }

        // var ver = api.version;
        // var sType = api.systemType;
        // var sVer = api.systemVersion;
        // var model = api.deviceModel;
        // var name = api.deviceName;
        // var cType = api.connectionType;
        // var winName = api.winName;
        // var winWidth = api.winWidth;
        // var winHeight = api.winHeight;
        // var frameName = api.frameName || '';
        // var frameWidth = api.frameWidth || '';
        // var frameHeight = api.frameHeight || '';
        var cacheSize = api.getCacheSize({ sync: true });

        var str = '<ul>';
        // str += '<li>引擎版本信息: ' + ver + '</li>';
        // str += '<li>系统类型: ' + sType + '</li>';
        // str += '<li>系统版本: ' + sVer + '</li>';
        // str += '<li>设备型号: ' + model + '</li>';
        // str += '<li>设备名称: ' + name + '</li>';
        // str += '<li>网络状态: ' + cType + '</li>';
        // str += '<li>主窗口名字: ' + winName + '</li>';
        // str += '<li>主窗口宽度: ' + winWidth + '</li>';
        // str += '<li>主窗口高度: ' + winHeight + '</li>';
        // str += '<li>子窗口名字: ' + frameName + '</li>';
        // str += '<li>子窗口宽度: ' + frameWidth + '</li>';
        // str += '<li>子窗口高度: ' + frameHeight + '</li>';
        str += '<li>Cache Size: ' + cacheSize + '</li>';
        str += '</ul>';

        $api.byId('sys-info').innerHTML = str;

    };

    // function smartUpdate() {
    //   api.addEventListener(
    //       {
    //           name: 'smartupdatefinish',
    //       },
    //       function (ret, err) {
    //           console.log('hereeee')
    //           console.log(ret)
    //           api.confirm(
    //               {
    //                   title: 'App更新成功，重启后生效',
    //                   msg: '是否现在重启？',
    //                   buttons: ['确定', '取消'],
    //               },
    //               function (ret, err) {
    //                   var index = ret.buttonIndex;
    //                   if (index == 1) {
    //                       api.rebootApp();
    //                   }
    //               }
    //           );
    //       }
    //   );
    // };

    // function checkUpdate() {
    //     console.log('update');
    //     var mam = api.require('mam');
    //     mam.checkUpdate(function(ret, err) {
    //         if (ret) {
    //             var result = ret.result;
    //             if (result.update == true && result.closed == false) {
    //                 var str = '新版本型号:' + result.version + ';更新提示语:' + result.updateTip + ';下载地址:' + result.source + ';发布时间:' + result.time;
    //                 api.confirm({
    //                     title : '有新的版本,是否下载并安装 ',
    //                     msg : str,
    //                     buttons : ['确定', '取消']
    //                 }, function(ret, err) {
    //                     if (ret.buttonIndex == 1) {
    //                         if (api.systemType == "android") {
    //                             api.download({
    //                                 url : result.source,
    //                                 report : true
    //                             }, function(ret, err) {
    //                                 if (ret && 0 == ret.state) {/* 下载进度 */
    //                                     api.toast({
    //                                         msg : "正在下载应用" + ret.percent + "%",
    //                                         duration : 2000
    //                                     });
    //                                 }
    //                                 if (ret && 1 == ret.state) {/* 下载完成 */
    //                                     var savePath = ret.savePath;
    //                                     api.installApp({
    //                                         appUri : savePath
    //                                     });
    //                                 }
    //                             });
    //                         }
    //                         if (api.systemType == "ios") {
    //                             // 表单方式提交数据或文件
    //                             api.ajax({
    //                                 url: '<获取ipa下载地址接口>',
    //                                 method: 'get',
    //                                 data: {
    //                                     '<Key>': '<Value>'
    //                                 }
    //                             }, function(ret, err) {
    //                                 if (ret) {
    //                                     api.installApp({
    //                                         appUri : '<ipa下载地址>'
    //                                     });
    //                                     // api.alert({ msg: JSON.stringify(ret) });
    //                                 } else {
    //                                     api.alert({ msg: JSON.stringify(err) });
    //                                 }
    //                             });
    //                         }
    //                     }
    //                 });
    //             } else {
    //                 api.alert({
    //                     msg : "暂无更新"
    //                 });
    //             }
    //         } else {
    //             api.alert({
    //                 msg : err.msg
    //             });
    //         }
    //     });
    // }

    // function showAlert() {
    //     // api.openFrame({
    //     //     name: 'page2',
    //     //     url: '', // https://cn.vuejs.org/
    //     //     // reload: true,
    //     //     rect: {
    //     //         x: 0,
    //     //         y: 180,
    //     //         w: 'auto',
    //     //         h: 'auto',
    //     //     }
    //     // });

    //     api.openWin({
    //         name: 'baidu',
    //         url: 'https://baidu.com/',
    //         progress: {
    //             title: '正在加载',
    //             text: 'loading...'
    //         },
    //         bgColor: '#FFFFFF',
    //         delay: 10
    //     });


    //     // setInterval(function () {
    //     //     const ret = api.getPrefs({ key: 'test' }, function (ret, error) {
    //     //         api.toast({
    //     //             msg: ret.value,
    //     //             location: 'middle'
    //     //         });
    //     //     })
    //     //     // alert(ret)
    //     // }, 1000)
    // }

    // function closeFrame() {
    //     // api.loadSecureValue({
    //     //     key: 'test'
    //     // }, function(ret, err) {
    //     //     var appKey = ret.value;
    //     //     alert(appKey)
    //     // });
    //     const ret = api.getPrefs({
    //         key: 'test'
    //     }, function(ret, error){
    //         alert(ret.value)
    //     });
    //     api.closeFrame({
    //         name: 'page2'
    //     });
    // }

    // function openFrames() {
        
    //     // api.openWin({
    //     //     name: 'login',
    //     //     url: 'widget://html/login.html',
    //     //     progress: {
    //     //         title: '正在加载',
    //     //         text: 'loading...'
    //     //     },
    //     //     bgColor: '#FFFFFF',
    //     //     delay: 10
    //     // });

    //     api.openFrameGroup({
    //         name: 'group1',
    //         background: '#FFFFFF',
    //         scrollEnabled: false,
    //         fixedOn: 'ui_window',
    //         rect: {
    //             x: 0,
    //             y: 0,
    //             w: 'auto',
    //             h: 'auto'
    //         },
    //         index: currentIndex,
    //         preload: 99,
    //         frames: [{
    //             name: 'login',
    //             url: 'widget://html/login.html',
    //             bgColor: '#fff'
    //         }, 
    //         {
    //             name: 'frame3',
    //             url: 'https://juejin.cn/',
    //             bgColor: '#fff'
    //         }
    //         ]
    //     }, function(ret, err) {
    //         var index = ret.index;
    //         console.log(`current index = ${index}`)
    //     });
    // }

    // function closeFrames() {
    //     api.closeFrameGroup({
    //         name: 'group1'
    //     });
    // }

    // function shiftFrame() {
    //     if (currentIndex === 1) {
    //         currentIndex = 0
    //     } else {
    //         currentIndex += 1
    //     }
    //     api.setFrameGroupIndex({
    //         name: 'group1',
    //         index: currentIndex,
    //         scroll: false
    //     });
    // }

    // function widgetDirectoryPath() {
    //     var index = 0
    //     var widgetDirPath = ''
    //     if (api.systemType == "android") {
    //         index = api.boxDir.indexOf('box');
    //         widgetDirPath = api.boxDir.slice(0, index);
    //         widgetDirPath = `${widgetDirPath}`;
    //     }
    //     else if (api.systemType == "ios") {
    //         index = api.boxDir.indexOf('Documents');
    //         widgetDirPath = api.boxDir.slice(0, index);
    //         widgetDirPath = `${widgetDirPath}Documents/APICloud/MainWidget`;
    //     }
    //     return widgetDirPath
    // }
    
    /**
     * 模拟App更新
     */
    function mockAppUpdate() {
        var downloadAppUrl = '';
        if(api.systemType == "ios") {
            downloadAppUrl = document.getElementById("iOS_url").value;
            // downloadAppUrl = "https://gitee.com/JShengJun/apicloud-update-demo/attach_files/939528/download/update_demo_0_0_22.plist";
        } else if (api.systemType == "android") {
            downloadAppUrl = document.getElementById("android_url").value;
            // downloadAppUrl = "https://gitee.com/JShengJun/apicloud-update-demo/attach_files/939526/download/update_demo_0_0_22.apk";
        }

        if (downloadAppUrl === '') {
            api.toast({
                msg:'下载App地址为空!'
            })
            return;
        }

        if (api.systemType == "ios" && downloadAppUrl.indexOf(".plist") === -1) {
            api.toast({
                msg:'下载ipa地址有误!'
            })
            return
        }

        if (api.systemType == "android" && downloadAppUrl.indexOf(".apk") === -1) {
            api.toast({
                msg:'下载apk地址有误!'
            })
            return
        }

        $appUpdateMan.checkUpdateApp({
            url: downloadAppUrl,
            version: "3.0.0"
        }, function(ret) {
            console.log(JSON.stringify(ret))
            api.toast({
                msg:ret.msg
            })
        })

        // $appUpdateMan.mockAppUpdate({
        //     downloadUrl: downloadAppUrl
        // }, function(ret) {
        //     console.log(JSON.stringify(ret))
        // })
    }

    /* 云修复 --------------------------------------------- */
    function cloudFix() {
        const downloadUrl = document.getElementById("widget_url").value;
        // const downloadUrl = `https://gitee.com/JShengJun/apicloud-update-demo-hot-fix/attach_files/${downloadUrlNo}/download/widget.zip`

        if (downloadUrl === '') {
            api.toast({
                msg:'下载Widget地址为空!'
            })
            return;
        }

        if (downloadUrl.indexOf(".zip") === -1) {
            api.toast({
                msg:'下载Widget地址有误!'
            })
            return
        }

        $appUpdateMan.checkUpdateWidget({
            url: downloadUrl,
            version: '0.1.2'
        }, function(ret) {
            console.log(JSON.stringify(ret))
            api.toast({
                msg:ret.msg
            })
        });
        // $appUpdateMan.widgetUpdate({ 
        //     url: downloadUrl, 
        //     widgetVersion: '0.1.1'
        // }, function (ret) {
        //     console.log(JSON.stringify(ret))
        //     api.toast({
        //         msg:ret.msg
        //     })
        // })
    }

    // function androidSetPrefs() {
    //     var apiExtension = api.require('apiExtension')
    //     apiExtension.jSetPrefs({
    //         'prefName' : 'inc_package',
    //         'key' : 'version_name',
    //         'value': api.appVersion
    //     })
    //     apiExtension.jSetPrefs({
    //         'prefName' : 'inc_package',
    //         'key' : 'version_code',
    //         'value': apiExtension.versionNo()
    //     })
    //     apiExtension.jSetPrefs({
    //         'prefName' : 'inc_package',
    //         'key' : 'sub_version',
    //         'value': 1
    //     })
    // }

    /* 下载 ------------------------------------------------------ */
    // function downloadDemo() {
    //     const downloadUrlNo = document.getElementById("widget_url").value;
    //     const downloadUrl = `https://gitee.com/JShengJun/apicloud-update-demo-hot-fix/attach_files/${downloadUrlNo}/download/widget.zip`
    //     let downloadFunc = download
    //     let setProgressFunc = setProgress
    //     let closeProgressFunc = closeProgress
    //     openProgress(downloadUrl, downloadFunc, setProgressFunc, closeProgressFunc, null)
    // }

    // function download(url, progressDataHandler, progressEndHandler, nextAction) {
    //     api.download({
    //         url : url,
    //         savePath: 'fs://widget.zip',
    //         report: true,
    //         cache: false
    //     }, function(ret, err) {
    //         if (ret && 0 == ret.state) {/* 下载进度 */
    //             console.log("正在下载应用" + ret.percent + "%")
    //             if (progressDataHandler) {
    //                 progressDataHandler(ret.percent)
    //             }
    //         }
    //         if (ret && 1 == ret.state) {/* 下载完成 */
    //             console.log('下载完成!')
    //             var savePath = ret.savePath;
    //             console.log(`save path = ${savePath}`)
    //             // close progress
    //             if (progressEndHandler) {
    //                 progressEndHandler()
    //             }
    //             // do next step
    //             if (nextAction) {
    //                 var savePath = ret.savePath
    //                 nextAction(savePath)
    //             }
    //         }
    //         if (ret && 2 == ret.state) {/* 下载失败 */
    //             console.log('下载失败!')
    //             // close progress and alert fail!!
    //             if (progressEndHandler) {
    //                 progressEndHandler()
    //             }
    //             api.toast({
    //                 msg:'下载失败!'
    //             })
    //         }
    //     });
    // }

    // function openProgress(downloadUrl, downloadFunc, setProgress, closeProgress, nextAction) {
    //     let progressDataHandler = setProgress
    //     let progressEndHandler = closeProgress
    //     let nextActionHandler = nextAction

    //     var UIActionProgress = api.require('UIActionProgress');
    //     UIActionProgress.open({
    //         maskBg: 'rgba(0,0,0,0.3)',
    //         styles: {
    //             h: 120,
    //             bg: '#fff',
    //             border: {
    //                 size: 2,
    //                 color: '#4876FF'
    //             },
    //             title: {
    //                 size: 13,
    //                 color: '#000',
    //                 marginT: 10
    //             },
    //             msg: {
    //                 size: 12,
    //                 color: '#000',
    //                 marginT: 5
    //             },
    //             lable: {
    //                 size: 12,
    //                 color: '#696969',
    //                 marginB: 5
    //             },
    //             progressBar: {
    //                 size: 2,
    //                 normal: '#000',
    //                 active: '#4876FF',
    //                 marginB: 35,
    //                 margin: 5
    //             }
    //         },
    //         data: {
    //             title: '正在更新',
    //             msg: '下载中...',
    //             value: 0
    //         }
    //     },function(ret){
    //         if (ret.eventType === 'show' && downloadFunc) {
    //             console.log('打开模块成功')
    //             downloadFunc(downloadUrl, progressDataHandler, progressEndHandler, nextActionHandler)
    //         }
    //         // if (ret.eventType === 'click') {
    //         //     console.log('点击了遮罩层')
    //         // }
    //         // if (ret.eventType === 'complete') {
    //         //     console.log('value值到100%')
    //         // }
    //     });
    // }

    // function setProgress(progress) {
    //     var UIActionProgress = api.require('UIActionProgress');
    //     UIActionProgress.setData({
    //         data: {
    //             title: '正在更新',
    //             msg: '下载中...',
    //             value: progress
    //         }
    //     });
    // }

    // function closeProgress() {
    //     var UIActionProgress = api.require('UIActionProgress');
    //     UIActionProgress.close()
    // }
    /* 下载 ------------------------------------------------------ */

    /* 解压widget ------------------------------------------------ */
    // function unzipDemo() {
    //     var savePath = ''
    //     if (api.systemType == "android") {
    //         savePath = `/storage/emulated/0/UZMap/${api.appId}/widget.zip`
    //     } else if (api.systemType == "ios") {
    //         var index = api.boxDir.indexOf('Documents');
    //         savePath = api.boxDir.slice(0, index);
    //         savePath = `${savePath}Documents/uzfs/${api.appId}/widget.zip`;
    //         console.log(savePath)
    //     }
    //     unzipWidget(savePath)
    // }

    // function unzipWidget(widgetZipPath) {
    //     api.showProgress({
    //         title: '更新Widget',
    //         text: '解压中...',
    //         modal: true
    //     });

    //     var zipModule = api.require('zipModule');

    //     var unzipPath = widgetDirectoryPath()

    //     if (api.systemType == "android") {
    //         androidSetPrefs();
    //     }

    //     zipModule.unzip({
    //         zipPath:widgetZipPath,
    //         unzipPath:unzipPath
    //     },function(ret) {
    //         console.log(`unzip path = ${unzipPath}`)
    //         api.hideProgress();
    //         // api.alert({ msg:JSON.stringify(ret)});
    //         // var message = ''
    //         if (ret.status === true) {
    //             console.log('解压成功!')
    //             // message = '解压成功!'

    //             // TODO: set widget version

    //             api.alert({
    //                 title: '更新完成',
    //                 msg: 'reboot',
    //             }, function(ret, err) {
    //                 api.rebootApp();
    //             });
                
    //         } else {
    //             console.log('解压失败!')
    //             var message = '解压失败!'

    //             api.toast({
    //                 msg : message,
    //                 duration : 2000
    //             });

    //             // delete zip and download again


    //         }

    //     });
    // }
    /* 解压widget ------------------------------------------------ */

    /* 进度条 ---------------------------------------------- */
    // function openProgressDemo() {
    //     var UIActionProgress = api.require('UIActionProgress');
    //     UIActionProgress.open({
    //         maskBg: 'rgba(0,0,0,0.3)',
    //         styles: {
    //             h: 120,
    //             bg: '#fff',
    //             border: {
    //                 size: 2,
    //                 color: '#4876FF'
    //             },
    //             title: {
    //                 size: 13,
    //                 color: '#000',
    //                 marginT: 10
    //             },
    //             msg: {
    //                 size: 12,
    //                 color: '#000',
    //                 marginT: 5
    //             },
    //             lable: {
    //                 size: 12,
    //                 color: '#696969',
    //                 marginB: 5
    //             },
    //             progressBar: {
    //                 size: 2,
    //                 normal: '#000',
    //                 active: '#4876FF',
    //                 marginB: 35,
    //                 margin: 5
    //             }
    //         },
    //         data: {
    //             title: '正在更新',
    //             msg: '下载中...',
    //             value: 10
    //         }
    //     },function(ret){
    //         if (ret.eventType === 'show') {
    //             console.log('打开模块成功')
    //             setTimeout(function() {
    //                 console.log('1秒后...')
    //                 setProgressToHalf()
    //             }, 1000)
    //             setTimeout(function() {
    //                 console.log('3秒后...')
    //                 setProgressEnd()
    //             }, 3000)
    //         }
    //         // if (ret.eventType === 'click') {
    //         //     console.log('点击了遮罩层')
    //         // }
    //         if (ret.eventType === 'complete') {
    //             console.log('value值到100%')
    //             UIActionProgress.close()
    //         }
    //     });
    // }

    // function setProgressToHalf() {
    //     setProgress(50)
    // }

    // function setProgressEnd() {
    //     setProgress(100)
    // }
    /* 进度条 ---------------------------------------------- */

    /* 版本更新 -------------------------------------------- */
    function appUpdate() {
        api.toast({
            msg:'开发中...'
        })
        return;
        // api 接口获取url
        console.log('update');
        var mam = api.require('mam');
        mam.checkUpdate(function(ret, err) {
            if (ret) {
                var result = ret.result;
                if (result.update == true && result.closed == false) { // 大版本更新(apk/ipa)
                    var str = '新版本型号:' + result.version + ';更新提示语:' + result.updateTip + ';下载地址:' + result.source + ';发布时间:' + result.time;
                    api.confirm({
                        title : '有新的版本,是否下载并安装 ',
                        msg : str,
                        buttons : ['确定', '取消']
                    }, function(ret, err) {
                        if (ret.buttonIndex == 1) {
                            if (api.systemType == "android") {
                                api.download({
                                    url : result.source,
                                    report : true
                                }, function(ret, err) {
                                    if (ret && 0 == ret.state) {/* 下载进度 */
                                        api.toast({
                                            msg : "正在下载应用" + ret.percent + "%",
                                            duration : 2000
                                        });
                                    }
                                    if (ret && 1 == ret.state) {/* 下载完成 */
                                        // TODO: 删除沙盒中的widget文件夹防止进入之前的小版本 删除sharedPreference 删除prefs widget版本号

                                        var savePath = ret.savePath;
                                        api.installApp({
                                            appUri : savePath
                                        });
                                    }
                                });
                            }
                            if (api.systemType == "ios") {
                                // 表单方式提交数据或文件
                                api.ajax({
                                    url: '<获取ipa下载地址接口>',
                                    method: 'get',
                                    data: {
                                        '<Key>': '<Value>'
                                    }
                                }, function(ret, err) {
                                    if (ret) {
                                        // TODO: 删除沙盒中的widget文件夹防止进入之前的小版本 删除prefs widget版本号

                                        api.installApp({
                                            appUri : '<ipa下载地址>'
                                        });
                                        // api.alert({ msg: JSON.stringify(ret) });
                                    } else {
                                        api.alert({ msg: JSON.stringify(err) });
                                    }
                                });
                            }
                        }
                    });
                } else {
                    // 检查小版本的更新(widget.zip) - 开关
                    var flagUseCDN = false
                    api.setPrefs({
                        key: 'useCDN',
                        value: flagUseCDN
                    });
                    // TODO: 开关于后续app关联

                    widgetZipUpdate()
                }
            } else {
                api.alert({
                    msg : err.msg
                });
            }
        });
    }

    function widgetZipUpdate() {
        // 检查小版本的更新(widget.zip)
        // TODO: fetch remote widget latest version
        var widgetVersionRemote = '1.0.0'
        // get local widget version
        var widgetVersionLocal = api.getPrefs({
            sync: true,
            key: 'widgetVersion'
        });
        console.log(`本地widget版本：${widgetVersionLocal}`)

        if (!widgetVersionRemote) {
            return
        }
        if (widgetVersionLocal === widgetVersionRemote) {
            return
        }
        var widgetZipUrl = ''
        $appUpdateMan.widgetUpdate({ 
            url: widgetZipUrl, 
            widgetVersion: widgetVersionRemote
        }, function (ret) {
            console.log(JSON.stringify(ret))
            api.toast({
                msg:ret.msg
            })
        })
        // let downloadFunc = download
        // let setProgressFunc = setProgress
        // let closeProgressFunc = closeProgress
        // let nextActionFunc = unzipWidget
        // openProgress(widgetZipUrl, downloadFunc, setProgressFunc, closeProgressFunc, nextActionFunc)
    }
    /* 版本更新 -------------------------------------------- */

    /* fs模块 */
    // function checkWidgetZipExistDemo() {
    //     var zipPath = `fs://widget.zip`
    //     checkWidgetZipExist(zipPath)
    // }

    // function deleteWidgetZipExistDemo() {
    //     var zipPath = `fs://widget.zip`
    //     if (checkWidgetZipExist(zipPath)) {
    //         console.log('true here')
    //         deleteWidgetZip(zipPath)
    //     }
    // }

    // function checkWidgetZipExist(path) {
    //     var fs = api.require('fs')
    //     var ret = fs.existSync({
    //         path: path
    //     })
    //     if (ret.exist) {
    //         api.toast({
    //             msg:'存在!!',
    //             duration: 1000
    //         })
    //         return true
    //     } else {
    //         console.log(JSON.stringify(ret))
    //         api.toast({
    //             msg:'不存在!!',
    //             duration: 1000
    //         })
    //         return false
    //     }
    // }

    // function deleteWidgetZip(path) {
    //     var fs = api.require('fs')
    //     fs.remove({
    //         path: path
    //     }, function(ret, err) {
    //         if (ret.status) {
    //             console.log('删除成功!!')
    //             api.toast({
    //                 msg:'删除成功!!',
    //                 duration: 1000
    //             })
    //         } else {
    //             console.log(JSON.stringify(err))
    //             api.toast({
    //                 msg:err.msg,
    //                 duration: 1000
    //             })
    //         }
    //     })
    // }

    // function deleteWidgetFolder() {
    //     var widgetDirPath = widgetDirectoryPath()
    //     removeDirectory(widgetDirPath)
    // }

    // function removeDirectory(path) {
    //     var fs = api.require('fs')
    //     fs.rmdir({
    //         path:path
    //     }, function(ret, err){
    //         if (ret.status) {
    //             console.log('删除成功!!')
    //             api.alert({
    //                 title: '删除成功',
    //                 msg: 'reboot',
    //             }, function(ret, err) {
    //                 api.rebootApp();
    //             });
    //         } else {
    //             console.log(JSON.stringify(err))
    //             api.toast({
    //                 msg:err.msg,
    //                 duration: 1000
    //             })
    //         }
    //     })
    // }

    /* fs模块 */

    // function writeFileToPath(path) {
    //     const filePath = path
    //     var fs = api.require('fs')
    //     fs.createFile({
    //         path: filePath
    //     }, function(ret, err) {
    //         if (ret.status) {
    //             console.log(JSON.stringify(ret));
    //             api.writeFile({
    //                 path: filePath,
    //                 data: `writeFile到${path}`
    //             }, function(ret, err) {
    //                 if (ret.status) {
    //                     console.log('success!!!')
    //                 } else {
    //                     console.log('falied!!!')
    //                     console.log(JSON.stringify(ret));
    //                 }
    //             });
    //         } else {
    //             console.log(JSON.stringify(ret));
    //         }
    //     });
    // }

    // function wgtRootDirTest() {
    //     const wgtRootPath = api.wgtRootDir;
    //     console.log(wgtRootPath);

    //     const filePath = `${wgtRootPath}/test1.txt`
    //     var fs = api.require('fs')
    //     writeFileToPath(filePath)
    // }

    // function fsDirTest() {
    //     const fsPath = api.fsDir;
    //     console.log(fsPath);

    //     const filePath = `${fsPath}/test1.txt`
    //     var fs = api.require('fs')
    //     writeFileToPath(filePath)
    // }

    // function cacheDirTest() {
    //     const cachePath = api.cacheDir;
    //     console.log(cachePath);

    //     const filePath = `${cachePath}/test1.txt`
    //     var fs = api.require('fs')
    //     writeFileToPath(filePath)
    // }

    // function boxDirTest() {
    //     const boxPath = api.boxDir;
    //     console.log(boxPath);

    //     const filePath = `${boxPath}/test1.txt`
    //     var fs = api.require('fs')
    //     writeFileToPath(filePath)
    // }

    // function fsTest() {
    //     const filePath = `fs://test1.txt`
    //     var fs = api.require('fs')
    //     writeFileToPath(filePath)
    // }

    // function cacheTest() {
    //     const filePath = `cache://test1.txt`
    //     var fs = api.require('fs')
    //     writeFileToPath(filePath)
    // }

    // function widgetTest() {
    //     const filePath = `widget://test1.txt`
    //     var fs = api.require('fs')
    //     writeFileToPath(filePath)
    // }

    // function writeToPreference() {
    //     api.setPrefs({
    //         key: 'userName',
    //         value: 'aaa'
    //     });
    // }

    /* apiExtension 测试 */
    // function jSetPrefs() {
    //     var apiExtension = api.require('apiExtension');
    //     apiExtension.jSetPrefs({
    //         'prefName' : 'inc_package',
    //         'key' : 'version_name',
    //         'value': api.appVersion
    //     })
    //     apiExtension.jSetPrefs({
    //         'prefName' : 'inc_package',
    //         'key' : 'version_code',
    //         'value': apiExtension.versionNo()
    //     })
    //     apiExtension.jSetPrefs({
    //         'prefName' : 'inc_package',
    //         'key' : 'sub_version',
    //         'value': 1
    //     })
    // }

    // function jGetPrefs() {
    //     var apiExtension = api.require('apiExtension');
    //     const versionName = apiExtension.jGetPrefs({
    //         'prefName' : 'inc_package',
    //         'key' : 'version_name'
    //     })
    //     console.log(versionName);
    //     alert(`versionName ：${versionName}`);
    // }

    // function jRemovePrefs() {
    //     var apiExtension = api.require('apiExtension');
    //     const ret = apiExtension.jRemovePrefs({
    //         'prefName' : 'inc_package',
    //         'key' : 'version_name'
    //     })

    //     if (ret) {
    //         alert('remove success!')
    //     } else {
    //         alert('remove failure!')
    //     }
    // }

    // function jClearPrefs() {
    //     var apiExtension = api.require('apiExtension');
    //     const ret = apiExtension.jClearPrefs({
    //         'prefName' : 'inc_package'
    //     })

    //     if (ret) {
    //         alert('clear success!')
    //     } else {
    //         alert('clear failure!')
    //     }
    // }

    // function jDeletePrefs() {
    //     var apiExtension = api.require('apiExtension');
    //     const ret = apiExtension.jDeletePrefs({
    //         'prefName' : 'inc_package'
    //     })

    //     if (ret) {
    //         alert('delete success!')
    //     } else {
    //         alert('delete failure!')
    //     }
    // }

    /* apiExtension 测试 */

    // function readWidgetVersion() {
    //     api.getPrefs({
    //         key:'widgetVersion'
    //     }, function(ret){
    //         alert(JSON.stringify(ret))
    //     })
    // }

    /*
     * 扫描获取itms下载地址
     */
    function scanGetiOSUrl() {
        // var FNScanner = api.require('FNScanner');
        FNScanner.openScanner({
            autorotation: false
        }, function(ret, err) {
            if (ret) {
                // $api.byId('iOS_url').innerHTML = ret.content;
                if (ret.eventType == 'success') {
                    console.log('ret content = ' + JSON.stringify(ret));
                    $api.byId('iOS_url').value = ret.content
                }
                // alert(JSON.stringify(ret));
            } else {
                console.log('err ret content = ' + JSON.stringify(err));
            }
        });
    }

    /*
     * 扫描获取APK下载地址
     */
    function scanGetAndroidUrl() {
        // var FNScanner = api.require('FNScanner');
        FNScanner.openScanner({
            autorotation: false
        }, function(ret, err) {
            if (ret) {
                // $api.byId('android_url').innerHTML = ret.content;
                if (ret.eventType == 'success') {
                    console.log('ret content = ' + JSON.stringify(ret));
                    $api.byId('android_url').value = ret.content
                }
                // alert(JSON.stringify(ret));
            } else {
                console.log('err ret content = ' + JSON.stringify(err));
            }
        });
    }

    
    /**
     * 扫描获取widget下载地址 
     */
    function scanGetWidgetUrl() {
        FNScanner.openScanner({
            autorotation: false
        }, function(ret, err) {
            if (ret) {
                // $api.byId('android_url').innerHTML = ret.content;
                if (ret.eventType == 'success') {
                    console.log('ret content = ' + JSON.stringify(ret));
                    $api.byId('widget_url').value = ret.content;
                }
                // alert(JSON.stringify(ret));
            } else {
                console.log('err ret content = ' + JSON.stringify(err));
            }
        });
    }

    // function promiseTest() {
    //     $appUpdateMan.testPromise()
    // }

</script>

</html>
